home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / Libraries / SAT 2.3b4 / Demo ƒ / HeartQuest demo ƒ / gameGlobals.p < prev    next >
Text File  |  1994-12-04  |  4KB  |  173 lines

  1. {=================================================}
  2. {========= GameGlobals, globals for HeartQuest ============}
  3. {=================================================}
  4.  
  5. { Example file for Ingemars Sprite Animation Toolkit. }
  6. { © Ingemar Ragnemalm 1992 }
  7. { See doc files for legal terms for using this code. }
  8.  
  9. { This file defines the resource numbers and global variables for HeartQuest.}
  10.  
  11. unit GameGlobals;
  12.  
  13. interface
  14.  
  15.     uses
  16. {$IFC UNDEFINED THINK_PASCAL}
  17.         Types, Quickdraw, Windows, Resources, Menus, ToolUtils, 
  18. {$ENDC}
  19.         SAT;
  20.  
  21.     const
  22. {    Resource numbers}
  23.  
  24.         fileMenuRes = 1002;        { File menu }
  25.         editMenuRes = 1003;    { Edit menu }
  26.         gameMenuRes = 1004;    { Race menu }
  27.         highMenuRes = 1005;    { Highscores menu }
  28.         aboutAlrt = 1000;        { About box }
  29.         helpenemiesAlrt = 1001;{ Pictures of the enemies }
  30.         theHighRes = 263;        { highscore window }
  31.         highDlog = 259;            { highscore name dialog box }
  32.  
  33. { File menu }
  34.  
  35.         helpenemies = 1;
  36.         quit = 3;
  37.  
  38. { Edit menu }
  39.         em_undo = 1;
  40.         em_cut = 3;
  41.         em_copy = 4;
  42.         em_paste = 5;
  43.  
  44. { Game menu }
  45.         run = 1;
  46.         sound = 3;
  47.         macho = 5;
  48.         allowBG = 7;
  49.         fastAnimation = 8;
  50.         pause = 10;
  51.         abort = 11;
  52.  
  53. { highscore menu }
  54.         showhs = 1;
  55.         clearhs = 3;
  56.  
  57.  
  58. { Game area size: }
  59.  
  60.         xsize = 512 - 440; {Use offSizeH-xsize!}
  61. {ysize = 320; {Full height - use offSizeV instead}
  62.  
  63. {Number of bonus objects to get a bonus level}
  64.         kBonusLevelTresh = 5;
  65.  
  66. { Preference file description - see further scores.p! }
  67.         kPrefsFileName = 'HeartQuest Prefs';
  68.         kPrefCreator = 'AHjD';
  69.         kPrefType = 'pref';
  70.  
  71.     type
  72. {    EventPtr = ^EventRecord;}
  73.  
  74.         str15 = string[15];
  75.  
  76.         featRec = record
  77.                 sound: boolean;
  78.                 allowBG: boolean;
  79.                 plotFast: boolean;
  80.                 macho: boolean;
  81.                 player: str15;
  82.             end;
  83.         featPtr = ^featRec;
  84.         featHnd = ^featPtr;
  85.  
  86. {Indexes for strings}
  87.     const
  88.         aboutStrID = 1;
  89.         anonymousStrID = 2;
  90.         cantfindsysStrID = 3;
  91.         resmissingStrID = 4;
  92.         creatingprefStrID = 5;
  93.         cantcreateresStrID = 6;
  94.         cantopenprefStrID = 7;
  95.         cantcreateprefStrID = 8;
  96.         normalStrID = 9;
  97.         machoStrID = 10;
  98.         scoreStrID = 11;
  99.         bonusStrID = 12;
  100.         levelStrID = 13;
  101.         sureStrID = 14;
  102.         nobodyStrID = 15;
  103.         startgameStrID = 16;
  104.         startlevelStrID = 17;
  105.         pauseStrID = 18;
  106.         resumeStrID = 19;
  107.         nopictStrID = 20;
  108.         noclutStrID = 21;
  109.         nooffscreenStrID = 22;
  110.         pleaseuncheckStrID = 23;
  111.         endStrID = 24;
  112.         okStrID = 25;
  113.         yesStrID = 26;
  114.         noStrID = 27;
  115.         quitStrID = 28;
  116.         memerrStrID = 29;
  117.         noscreenStrID = 30;
  118.         satnopictStrID = 31;
  119.         nowindStrID = 32;
  120.         startbonusStrID = 33;
  121.  
  122.     var
  123.         theHigh: WindowPtr; { Window ptrs. }
  124.  
  125. {    Menu handles.  There isn't any apple menu here, since TransSkel will}
  126. {    be told to handle it itself.}
  127.  
  128.         features: featHnd;        { Settings record. }
  129.  
  130.         fileMenu, editMenu, GameMenu, highMenu: MenuHandle;
  131.  
  132. {      Dummy Boolean.  This may be used for Memory Management, if desired }
  133.         dummy: Boolean;
  134.  
  135.         slask: OSerr;
  136.  
  137.         level: longint;
  138.         bonus: longint;
  139.  
  140.         playerPos: point; { Position of player, to make it possible for monsters to aim }
  141.  
  142.         pauseFlag: boolean;
  143.  
  144. {New booleans for deciding when a level is completed, and whether there is a bonus object active or not.}
  145.         levelCompleted, bonusObjectRunning: Boolean;
  146.  
  147. {Variables for handling bonus levels. I havn't decided if gotAllBonuses should be used for anything.}
  148.         bonusLevelRunning, gotAllBonuses: Boolean;
  149.         bonusesCollected: integer;
  150.  
  151.         lastMacho: Boolean; {features^^.macho förra game over}
  152.         lastHigh: Integer; {Platsen för förra highscore}
  153.  
  154.         fadeTo: RGBColor;    {Global color for CLUT fading}
  155.  
  156.     function MyGetIndString (index: integer): Str255;
  157.  
  158. implementation
  159.  
  160. {I know, it's ugly to have a routine in the globals file, but this is needed just}
  161. {about everywhere, so the alternative was to make a new unit.}
  162.  
  163. {MyGetIndString returns a string that it gets from STR# 128 (hard-coded)}
  164. {by GetIndString.}
  165.     function MyGetIndString (index: integer): Str255;
  166.         var
  167.             str: Str255;
  168.     begin
  169.         GetIndString(str, 128, index);
  170.         MyGetIndString := str;
  171.     end;
  172.  
  173. end.